#ifndef SCENE_H
#define SCENE_H
#include <cstddef>
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Window/Event.hpp>
#include "texturemanager.h"
#include "engine.h"


class Scene{

public:
	Scene();

	virtual void Init()=0;//incializa la escen
	virtual void ProcessEvent(const sf::Event &e)=0;//Procesa los eventos
	virtual void Render(sf::RenderWindow &w)=0;//Dibuja
	virtual void Update(const float &dt)=0;//actualiza la escena según el tiempo
	virtual void CleanUp()=0;//Limpia la escena


protected:

	Engine &theEngine;//referencia al motor de escenas

	TextureManager &theTextureManager;//referencia al manejador de texturas	

	void EndScene();//Finaliza una escena


};
#endif
